<!DOCTYPE html>
<html>
<!--
1:v-once 使用于内容不变化的组件，如果该组件标志位v-once,则每次加载的时候不用重新渲染，提高性能
-->
<head>
	<meta charset="utf-8">
	<title>动态组件和v-once（单例）</title>
	<script type="text/javascript" src="./vue.js"></script>
</head>
<body>	
	<div id="app">
		<!-- 普通方式 -->
		<!-- <child-one v-if='type === "child-one"'></child-one>
		<child-two v-if='type === "child-two"'></child-two> -->
		<!-- 动态组件的方式 -->
		<component :is="type"></component>
		<button @click="handleChange">change</button>
	</div>
	<script>
		Vue.component('child-one' , {
			template : 
				`<div v-once>
					child-one
				</div>`
		});

			Vue.component('child-two' , {
			template : 
				`<div v-once>
					child-two
				</div>`
		});

		var app = new Vue({
			el : '#app' ,
			data : {
				type : "child-one"
			},
			methods : {
				handleChange : function() {
					this.type = (this.type === 'child-one' ? 'child-two' : 'child-one');
				}
			}
			
		});
	</script>
</body>
</html>